package jxau.jwgl.service;

import jxau.jwgl.api.EvaluationApi;
import jxau.jwgl.api.JWGLServerException;
import jxau.jwgl.commons.entity.Evaluation;
import jxau.jwgl.commons.entity.EvaluationTeach;

import java.util.List;

/**
 * EvaluationService
 *
 * @author LongShu 2017/06/09
 * @see EvaluationApi
 */
public interface EvaluationService {

    /**
     * 评教老师列表
     *
     * @param username 学号
     * @param semester 学期
     * @return 评教老师列表
     * @throws JWGLServerException
     */
    List<EvaluationTeach> evaluationList(String username, String semester) throws JWGLServerException;

    /**
     * @param username   学号
     * @param evaluation 评教内容
     * @return 评教数量
     * @throws JWGLServerException
     * @throws ServiceException
     */
    int submitEvaluation(String username, Evaluation evaluation) throws JWGLServerException, ServiceException;

    /**
     * 是否正在评教
     *
     * @param username 学号
     * @param semester 学期
     * @return 任务完成时 false,未完成返回 true
     * @throws ServiceException
     * @see EvaluationTask#getId()
     */
    boolean isEvaluating(String username, String semester) throws ServiceException;

}
